package com.tkjt.pms.impt.service;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.tkjt.pms.common.entity.TkIndexValue;
import com.tkjt.pms.impt.IGIndexImporterService;
import com.tkjt.pms.impt.common.KpiConsts;
import com.tkjt.pms.impt.vos.GIndexVo;
import com.tkjt.pms.impt.vos.KpiIndexDataVo;
import com.tkjt.pms.impt.vos.KpiIndexValueVo;

import com.tkjt.pms.modules.common.mapper.TkIndexValueMapper;
import lombok.extern.slf4j.Slf4j;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.io.File;
import java.util.List;

@Slf4j
@Service
public class GIndexImporter extends ServiceImpl<TkIndexValueMapper, TkIndexValue> implements IGIndexImporterService {


	@Autowired
	private KpiImportUpdater kpiImportUpdater;
    @Override
	public void doImporter(String filePath) {

		ImportParams params = new ImportParams();
		params.setTitleRows(1);
		params.setHeadRows(2);
		params.setNeedSave(false);

		File file = new File(filePath);

		List<GIndexVo> results = ExcelImportUtil.importExcel(file, GIndexVo.class, params);
		log.info("results size=" + results.size());

		/**************************************************************************
		 * 处理权重
		 */
		this.processIndexWeightData(results);

		/**************************************************************************
		 * 处理指标值
		 */
		this.processIndexValueData(results);
		
	}

	/**************************************************************************
	 * 处理权重
	 */
   private void processIndexWeightData(List<GIndexVo> results) {

		for (GIndexVo indexVo : results) {
			String indexCode = indexVo.getCode();
			// "事业群"
			String valueStr = indexVo.getW01();
			kpiImportUpdater.updateIndexWeight(KpiConsts.INDEX_GROUP_G, indexCode, "事业群", valueStr);
			// "营销"
			valueStr = indexVo.getW02();
			kpiImportUpdater.updateIndexWeight(KpiConsts.INDEX_GROUP_G, indexCode, "营销", valueStr);
			// "服务"
			valueStr = indexVo.getW03();
			kpiImportUpdater.updateIndexWeight(KpiConsts.INDEX_GROUP_G, indexCode, "服务", valueStr);
			// "餐饮"
			valueStr = indexVo.getW04();
			kpiImportUpdater.updateIndexWeight(KpiConsts.INDEX_GROUP_G, indexCode, "餐饮", valueStr);
			// "运行"
			valueStr = indexVo.getW05();
			kpiImportUpdater.updateIndexWeight(KpiConsts.INDEX_GROUP_G, indexCode, "运行", valueStr);
			// "照护"
			valueStr = indexVo.getW06();
			kpiImportUpdater.updateIndexWeight(KpiConsts.INDEX_GROUP_G, indexCode, "照护", valueStr);
			// "医院"
			valueStr = indexVo.getW07();
			kpiImportUpdater.updateIndexWeight(KpiConsts.INDEX_GROUP_G, indexCode, "医院", valueStr);
			// "财务"
			valueStr = indexVo.getW08();
			kpiImportUpdater.updateIndexWeight(KpiConsts.INDEX_GROUP_G, indexCode, "财务", valueStr);
			// "经营"
			valueStr = indexVo.getW09();
			kpiImportUpdater.updateIndexWeight(KpiConsts.INDEX_GROUP_G, indexCode, "经营", valueStr);
			// "行政"
			valueStr = indexVo.getW10();
			kpiImportUpdater.updateIndexWeight(KpiConsts.INDEX_GROUP_G, indexCode, "行政", valueStr);
			// "人力"
			valueStr = indexVo.getW11();
			kpiImportUpdater.updateIndexWeight(KpiConsts.INDEX_GROUP_G, indexCode, "人力", valueStr);
			// "业发"
			valueStr = indexVo.getW12();
			kpiImportUpdater.updateIndexWeight(KpiConsts.INDEX_GROUP_G, indexCode, "业发", valueStr);
			
			// "独立" - 暂无
			// "护理" - 暂无
			// "康复" - 暂无

		}

	}

	/**************************************************************************
	 * 处理指标值
	 */
    private void processIndexValueData(List<GIndexVo> results) {

		for (GIndexVo indexVo : results) {

			String indexCode = indexVo.getCode();

			log.info("start index value, indexCode="+indexCode);
			
			/***********************************
			 * * 指标值代码
			 */
			List<KpiIndexValueVo> indexValues = indexVo.getIndexValues();
			{
				// 独立
				List<KpiIndexDataVo> indexData = indexVo.getIndexData1();
				kpiImportUpdater.updateIndexValueData(indexCode, "独立", indexData, indexValues);
			}
			{
				// 护理
				List<KpiIndexDataVo> indexData = indexVo.getIndexData2();
				kpiImportUpdater.updateIndexValueData(indexCode, "护理", indexData, indexValues);
			}
			{
				// 康复
				List<KpiIndexDataVo> indexData = indexVo.getIndexData3();
				kpiImportUpdater.updateIndexValueData(indexCode, "康复", indexData, indexValues);
			}
			{
				//事业群
				List<KpiIndexDataVo> indexData = indexVo.getIndexData4();
				kpiImportUpdater.updateIndexValueData(indexCode, "事业群", indexData, indexValues);
			}
			{
				//市场营销部
				List<KpiIndexDataVo> indexData = indexVo.getIndexData5();
				kpiImportUpdater.updateIndexValueData(indexCode, "市场营销部", indexData, indexValues);
			}
			{
				//服务管理部 
				List<KpiIndexDataVo> indexData = indexVo.getIndexData6();
				kpiImportUpdater.updateIndexValueData(indexCode, "服务管理部", indexData, indexValues);
			}
			{
				//餐饮管理部 
				List<KpiIndexDataVo> indexData = indexVo.getIndexData7();
				kpiImportUpdater.updateIndexValueData(indexCode, "餐饮管理部", indexData, indexValues);
			}
			{
				//运行保障部 
				List<KpiIndexDataVo> indexData = indexVo.getIndexData8();
				kpiImportUpdater.updateIndexValueData(indexCode, "运行保障部", indexData, indexValues);
			}
			{
				//照护专业部 
				List<KpiIndexDataVo> indexData = indexVo.getIndexData9();
				kpiImportUpdater.updateIndexValueData(indexCode, "照护专业部", indexData, indexValues);
			}
			{
				//医院发展与管理部
				List<KpiIndexDataVo> indexData = indexVo.getIndexData10();
				kpiImportUpdater.updateIndexValueData(indexCode, "医院发展与管理部", indexData, indexValues);
			}
			{
				// 财务管理部
				List<KpiIndexDataVo> indexData = indexVo.getIndexData11();
				kpiImportUpdater.updateIndexValueData(indexCode, "财务管理部", indexData, indexValues);
			}
			{
				// 经营管理部
				List<KpiIndexDataVo> indexData = indexVo.getIndexData12();
				kpiImportUpdater.updateIndexValueData(indexCode, "经营管理部", indexData, indexValues);
			}
			{
				// 行政办公室
				List<KpiIndexDataVo> indexData = indexVo.getIndexData13();
				kpiImportUpdater.updateIndexValueData(indexCode, "行政办公室", indexData, indexValues);
			}
			{
				// 人力资源部
				List<KpiIndexDataVo> indexData = indexVo.getIndexData14();
				kpiImportUpdater.updateIndexValueData(indexCode, "人力资源部", indexData, indexValues);
			}
			{
				//养老业务发展部
				List<KpiIndexDataVo> indexData = indexVo.getIndexData15();
				kpiImportUpdater.updateIndexValueData(indexCode, "养老业务发展部", indexData, indexValues);
			}

			log.info("end, indexCode="+indexCode);
			
		}

	}


}
